package com.htbb.common.mq;

import javax.jms.MapMessage;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

/**
 * @类名称：MqUtil
 * @类描述：
 * 创建人：wuyongde  
 * 创建时间：2017-4-12 下午03:54:41    
 * 修改人：wuyongde   
 * 修改时间：2017-4-12 下午03:54:41   
 * @修改备注：
 * @version 1.0
 */
public class MqUtil {
	
	private final Logger logger = LoggerFactory.getLogger(this.getClass());
	
	private static MqUtil mqUtil = new MqUtil();

	public static MqUtil getInstance() {
		if (mqUtil == null) {
			mqUtil = new MqUtil();
		}
		return mqUtil;
	}
	
	/**
	 * 启动MQ接收
	 * @return
	 */
	public boolean start(){
		try {
			logger.info("初始化MQ............");
			for(int i=0;i<8;i++){
				MqReadThread mqReadThread = new MqReadThread();
				mqReadThread.start();
			}
			
			logger.info("初始化MQ完成.");
			return true;
		} catch (Exception e) {
			e.printStackTrace();
			logger.info("初始化MQ异常"+e);
			return false;
		}
	}
	

	/**
	 * MQ消息写入
	 * @param jsonmsg json消息
	 * @param mqname 写入消息队列名称
	 * @return
	 */
	@SuppressWarnings("static-access")
	public boolean write(String jsonmsg){

		try {
			//写入消息队列名称
			logger.info("消息写入MQ ["+Config.MQ_SERVER+"]");
			MapMessage message = MqSender.getInstance().getSession().createMapMessage();
			message.setString("jsonMsg", jsonmsg);
			MqSender.getInstance().sendMapMessage(message, Config.MQ_SERVER);
			return true;
		} catch (Exception e) {
			e.printStackTrace();
			logger.info("消息写入MQ异常"+e);
			return false;
		}
	} 	

	public static void main(String[] args) {
		//读取MQ消息
		MqUtil.getInstance().start();	
	}
	
}
